package com.sun.module_base.ext

import com.sun.module_base.app.ResultState
import com.sun.module_network.ApiException

/**
 *@author:sunc
 *@time :2025/7/30 16:57
 *@desc: 描述
 */
/**
 * 显示页面状态，这里有个技巧，成功回调在第一个，其后两个带默认值的回调可省
 * @param resultState 接口返回值
 * @param onLoading 加载中
 * @param onSuccess 成功回调
 * @param onError 失败回调
 *
 */
fun <T> parseState(
    resultState: ResultState<T>,
    onSuccess: (T?) -> Unit,
    onError: ((ApiException) -> Unit)? = null,
    onLoading: (() -> Unit)? = null
) {
    when (resultState) {
        is ResultState.Loading -> {
//            showLoading(resultState.loadingMessage)
            onLoading?.invoke()
        }
        is ResultState.Success -> {
//            dismissLoading()
            onSuccess.invoke(resultState.data)
        }
        is ResultState.Error -> {
//            dismissLoading()
            onError?.run { this(resultState.error) }
        }
    }
}